
 const myMap = new Map();
    // 设置键值对
    myMap.set('常州环球港邮轮酒店', '${userName}  ${roomType}-${mealType} ${startDate}  ${roomNum}${nightNum}  晨风旅行社 房价00000   房费预付，杂费自理，房价保密');
    myMap.set('常州远洲酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  ');
    myMap.set('常州宝丽格大酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  000');
    myMap.set('建德航空小镇君澜度假酒店', '酒店名 : 建德航空小镇君澜度假酒店</br>入离日期 : ${startDate}至 ${endDate}共${nightNum}</br>客人姓名 :${userName}  </br>预订房型 : ${roomType}+${mealType}  ${roomNum}</br>结算：200');
    myMap.set('茅山南湖度假庄园', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  ');
    myMap.set('徐州吕梁水街开元颐居度假酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  00000');
    myMap.set('沁悦大酒店(常州湖塘纺织城店)', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  00000');
    myMap.set('常州富都洲际酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  00000');
    myMap.set('维也纳国际酒店（东莞松山湖店）', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  维也纳国际酒店（东莞松山湖店）');
    myMap.set('茗静园·安吉禧玥山居度假酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  茗静园·安吉禧玥山居度假酒店');
    myMap.set('茗静园·安吉禧乐山居度假酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  茗静园·安吉禧乐山居度假酒店');
    myMap.set('壹宿酒店（伍家岗万达广场店）', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  壹宿酒店（伍家岗万达广场店）');
    myMap.set('广州百花山庄度假村(增城万达广场店)', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}  广州百花山庄度假村(增城万达广场店)');
    myMap.set('建湖九龙国际大酒店', '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum}   ${channel}');
    myMap.set('鑫瑞四季酒店(镇江吾悦广场店）', '${userName} ${roomType}<${mealType}>  ${startDate}  ${roomNum}${nightNum}');
    myMap.set("南京国际会议大酒店", '客人：${userName}</br>入住：${startDate}</br>离店：${endDate}</br>房型：${roomType}</br>早餐：${mealType}</br>间数： ${roomNum}</br>金额：00000</br>渠道：${channel}');
    myMap.set("常州都喜天丽富都龙城酒店", '${userName}  ${roomType} <${mealType}>  ${startDate}  ${roomNum}${nightNum}  ${channel} 00000 ');
    myMap.set("瑞颐康养酒店", '酒店名 : 苏州瑞颐康养酒店</br>入离日期 : ${startDate}~${endDate}  共${nightNum}</br>客人姓名 :  ${userName}</br>预订房型 : ${roomType}-${roomNum} ${mealType}               </br>结算价：00000');
    myMap.set("常州富都戴斯酒店", '店名 : 常州富都戴斯酒店</br>入离日期 :${startDate}至${endDate}共${nightNum}</br>客人姓名：${userName}</br>预订房型: ${roomType}房   ${mealType} ${roomNum}</br>结算价：00000</br>来源：${channel}</br>备注：该客人房费已支付，本公司统一结算。房价保密，杂费自理。</br>发票：本公司开具。</br>烦请确认回复，谢谢');
    myMap.set("常州万泽酒店（武进春秋淹城店）", '${userName}   ${roomType}-${mealType} ${startDate}  ${roomNum}${nightNum}  000');
    myMap.set("常州都喜天丽富都青枫苑酒店", '${userName}   ${roomType}<${mealType}> ${startDate}  ${roomNum}${nightNum}  000');
    myMap.set("南宁荣荣大酒店（江南万达店）", '${userName}  ${roomType} ${mealType}  ${startDate}  ${roomNum}${nightNum} 南宁荣荣大酒店（江南万达店）');
    myMap.set("溧阳水西·酒店", '${userName}  ${roomType}<${mealType}> ${startDate}  ${roomNum}${nightNum}  000');
    myMap.set("桐庐达曼酒店", '酒店名 :达曼酒店</br> 入离日期 : ${startDate}至${endDate}共${nightNum} </br> 客人姓名 : ${userName}</br> 预订房型 :  ${roomType}<${mealType}>-${roomNum}</br> 结算:000');
    myMap.set("桐庐达曼酒店（杭州桐庐市区富春江镇店）", '酒店名 :达曼酒店</br> 入离日期 : ${startDate}至${endDate}共${nightNum} </br> 客人姓名 : ${userName}</br> 预订房型 :  ${roomType}<${mealType}>-${roomNum}</br> 结算:000');
    myMap.set("桐庐达曼酒店（杭州桐庐市区店）", '酒店名 :达曼酒店</br> 入离日期 : ${startDate}至${endDate}共${nightNum} </br> 客人姓名 : ${userName}</br> 预订房型 :  ${roomType}<${mealType}>-${roomNum}</br> 结算:000');
    myMap.set("建德达曼云栖度假村", '酒店名 : 达曼云栖度假村</br> 入离日期 : ${startDate}至${endDate}共${nightNum}</br> 客人姓名 : ${userName}</br> 预订房型 : ${roomType} ${mealType}-${roomNum}</br> 结算:000');
    myMap.set("艺龙瑞云酒店（河源火车站万隆城店）", '${userName}  ${roomType}<${mealType}> ${startDate}  ${roomNum}${nightNum}  000 携程');
    myMap.set("龙岩星辰智能投影酒店（万宝广场店）", '${userName}  ${roomType}  ${mealType} ${startDate}  ${roomNum}${nightNum}  售卖价:000');
    myMap.set("溧阳水西·天目湖酒店", '${userName}  ${roomType}-${mealType} ${startDate}  ${roomNum}${nightNum}  售卖价:000');
    myMap.set("维也纳酒店（常州金坛凤凰城店）", '${userName}  ${roomType}-${mealType} ${startDate}  ${roomNum}${nightNum} 携程 000');

    $(document).ready(function(){
        var newDiv = document.createElement("div");
        newDiv.id = "myMessageBox";
        // 为新 div 元素设置内联 CSS 样式
        newDiv.style.position = "fixed";
        newDiv.style.top = "20px";
        newDiv.style.left = "50%";
        newDiv.style.transform = "translateX(-50%)";
        newDiv.style.backgroundColor = "#333";
        newDiv.style.color = "white";
        newDiv.style.padding = "10px 20px";
        newDiv.style.borderRadius = "5px";
        newDiv.style.fontSize = "16px";
        newDiv.style.display = "none";  // 默认不显示
        newDiv.style.zIndex = "9999";
        // 设置 div 的文本内容
        newDiv.textContent = "这是一个固定定位的消息框";
        // 将新 div 元素添加到 body 中
        document.body.appendChild(newDiv);
        let intervalID = setInterval(function() {
            addRemark()
        }, 100);
    })

    // 添加按钮的函数
    function addRemark(){
        // 获取所有 class 为 hoteltr 的行
        const hotelRows = $('.hoteltr');
        // 检查是否找到行
        // 循环打印每一行的内容
        hotelRows.each(function(index, row) {
            const selfTdList = $(row).find('.self-td');
            if(selfTdList.length>0){
                return
            }
            var hotelNameDiv = $(row).find('div[name="divGoToHotelName"]');
            const hotelName = getHoteName($(hotelNameDiv).contents().first().text().trim())
            const userName = $(row).find('td:nth-child(4) > div.occupant').text().replace("VIP","");
            // console.log(hotelName)
            const targetElement = $(row).find('td:nth-child(2) > div');
            const dateArr = getDate(targetElement.text().trim())
            //console.log(dateArr)
            const startDate = dateArr[0]
            const endDate = dateArr[1]
            var roomTypeAstr = $(row).find('a.d-blue').text();
            const roomNumStr = $(row).find(' td:nth-child(3) > .d-lightgray').text()
            const roomNum = getRoomNum(roomNumStr)
            //console.log(roomTypeAstr)
            const roomType = getRoomType(roomTypeAstr)
            const mealType = getMealType(roomTypeAstr)
            var nightNumStr = $(row).find('td:nth-child(2) > div > .d-lightgray').text();
            //console.log(nightNumStr,'nightNumStr')
            const nightNum = getNightNum(nightNumStr)
            const channelStr = $(row).find('.table-inline').text();
            let channel = "携程"
            if(channelStr.indexOf('艺龙')>-1){
                channel = '艺龙'
            }else if(channelStr.indexOf('去哪儿')>-1){
                channel = '去哪儿'
            }
            //console.log("channel",channel)
            myMap.forEach((value, key) => {
                if(key == hotelName){
                    const template = myMap.get(key)
                    //console.log(template)
                    // 用正则表达式替换模板字符串中的变量
                    var result = template.replace("${name}", hotelName)
                    .replace("${userName}", userName)
                    .replace("${roomType}", roomType)
                    .replace("${mealType}", mealType)
                    .replace("${startDate}", startDate)
                    .replace("${endDate}", endDate)
                    .replace("${roomNum}", roomNum)
                    .replace("${nightNum}", nightNum)
                    .replace("${channel}", channel);
                    const selfDiv = $('<td class="self-td" style="position:absolute;height:108px;overflow:auto;border-bottom:none!important">'+result+'</td>')
                    $(row).append(selfDiv);
                    selfDiv.on('dblclick', async function() {
                        // 获取 div 内的内容
                       // console.log(111)
                        var htmlContent = $(this).html();

                        // 1. 先替换 <br> 为特殊标记（避免 DOMParser 丢弃）
                        var tempHtml = htmlContent.replace(/<br\s*\/?>/gi, '\n'); // 先替换成换行符
                        tempHtml = tempHtml.replace(/&nbsp;/g, ' '); // 替换 &nbsp; 为空格

                        // 2. 使用 DOMParser 解码 HTML 实体（&lt; → <, &gt; → >）
                        var decodedContent = new DOMParser()
                            .parseFromString(tempHtml, 'text/html')
                            .documentElement.textContent;

                        // 3. 处理换行符（确保 \n 保留）
                        var content = decodedContent.replace(/\n/g, '\n'); // 保留换行符

                        // var content = $(this).html().replace(/<br\s*\/?>/gi, '\n').replace(/&nbsp;/g, ' ').replace("&gt; ","").replace("&lt;","");
                        // 使用 Clipboard API 复制内容
                        navigator.clipboard.writeText(content).then(function() {
                            $('#myMessageBox').text("复制成功").fadeIn(300).delay(2000).fadeOut(300);
                        }).catch(function(error) {
                            alert('复制失败: ' + error);
                        });
                    });
                }
            })
        });
    }

    function getTitle(index){
        // 获取所有 class 为 hoteltr 的行
        const row = $('.hoteltr')[index];
        // 检查是否找到行
        // 循环打印每一行的内容
        var hotelNameDiv = $(row).find('div[name="divGoToHotelName"]');
        const hotelName = getHoteName($(hotelNameDiv).contents().first().text().trim())
        const userName = $(row).find('td:nth-child(4) > div.occupant').text();
        //console.log(hotelName)
        const targetElement = $(row).find('td:nth-child(2) > div');
        const dateArr = getDate(targetElement.text().trim())
        const startDate = dateArr[0]
        const endDate = dateArr[1]
        var roomTypeAstr = $(row).find('a.d-blue').text();
        const roomNumStr = $(row).find(' td:nth-child(3) > .d-lightgray').text()
        const roomNum = getRoomNum(roomNumStr)
        //console.log(roomTypeAstr)
        const roomType = getRoomType(roomTypeAstr)
        const mealType = getMealType(roomTypeAstr)
        var nightNumStr = $(row).find('td:nth-child(2) > div > .d-lightgray').text();
        //console.log(nightNumStr,'nightNumStr')
        const nightNum = getNightNum(nightNumStr)
        myMap.forEach((value, key) => {
            if(key == hotelName){
                const template = myMap.get(key)
                //console.log(template)
                // 用正则表达式替换模板字符串中的变量
                var result = template.replace("${name}", hotelName)
                .replace("${userName}", userName)
                .replace("${roomType}", roomType)
                .replace("${mealType}", mealType)
                .replace("${startDate}", startDate)
                .replace("${roomNum}", roomNum)
                .replace("${nightNum}", nightNum);

               // console.log(result);
            }
        });
    }

    function getDate(inputString){
        // 使用正则表达式匹配日期和晚数
        const regex = /(\d{4}-\d{2}-\d{2})至(\d{4}-\d{2}-\d{2})\((\d+)晚\)/;

        // 执行匹配
        const match = inputString.match(regex);

        if (match) {
            const startDate = match[1]; // 获取起始日期
            const endDate = match[2];   // 获取结束日期
            const nights = match[3];    // 获取几晚
            return [startDate,endDate,nights]
            //console.log(`开始日期: ${startDate}`);
           // console.log(`结束日期: ${endDate}`);
           // console.log(`晚数: ${nights}`);
        } else {
            console.log("无法提取信息");
        }
    }

    function getHoteName(inputString) {
        // 使用正则表达式匹配 `/` 后面的部分
        const regex = /\/(.+)$/;
        const match = inputString.match(regex);

        if (match) {
            return match[1]; // 返回 `/` 后面的部分
        } else {
            return null; // 如果没有找到匹配的内容
        }
    }

  function getRoomType(inputString) {
     // console.log('roomType',inputString)
      const roomRegex = /(.+?[房|间|屋][ABCDE]?)/; // 匹配房型（如“豪华双人房”或“豪华大床间”）
    const roomMatch = inputString.match(roomRegex);  // 匹配房型
      if(roomMatch) {
          return roomMatch[1];
      }
    return inputString.split('<')[0];  // 如果匹配到，返回房型；否则返回空字符串
}

    // 获取餐型
    function getMealType(inputString) {
        const mealRegex = /<([^>]*早[^>]*)>/g;  // 匹配包含“早”字的餐食信息
        const mealMatches = [];
        let mealMatch;

        while ((mealMatch = mealRegex.exec(inputString)) !== null) {
            mealMatches.push(mealMatch[1]);  // 提取餐型信息
        }

        return mealMatches.join(' ');  // 将所有餐食信息合并成一个字符串
    }

    function getNightNum(inputString) {
        const regex = /\((.*?)\)/;  // 匹配括号中的内容
        const match = inputString.match(regex);  // 查找括号中的内容

        return match ? match[1] : '';  // 如果找到，返回括号中的内容；否则返回空字符串
    }

    function getRoomNum(inputString) {
        const regex = /\((.*?)\)/;  // 匹配括号中的内容
        const match = inputString.match(regex);  // 查找括号中的内容

        return match ? match[1] : '';  // 如果找到，返回括号中的内容；否则返回空字符串
    }
